//package com.ruitu.mall_98_1.product.adapter;
//
//import android.content.Context;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.widget.TextView;
//
//import com.beanu.arad.base.my_base.base_list.ListBaseAdapter;
//import com.beanu.arad.base.my_base.base_list.SuperViewHolder;
//import com.beanu.arad.utils.Logg;
//import com.beanu.arad.utils.ToastUtils;
//import com.ruitu.mall_98_1.R;
//import com.ruitu.router_module.bean.product.Sku;
//import com.ruitu.router_module.bean.product.Spec;
//import com.zhy.view.flowlayout.FlowLayout;
//import com.zhy.view.flowlayout.TagAdapter;
//import com.zhy.view.flowlayout.TagFlowLayout;
//
//import java.util.ArrayList;
//import java.util.Collection;
//import java.util.List;
//import java.util.Set;
//
//public class SpecApter__ extends ListBaseAdapter<Spec> {
//    private List<Sku> skuList = new ArrayList<>();//套餐形式的规格
//    private int modelNum = 1;//规格的数量
//    private boolean[] isSelects;//记录是否已选规格(主要记录上一级是否已选)
//
//    public void setSkuList(List<Sku> skuList) {
//        this.skuList = skuList;
//    }
//
//    public SpecApter__(Context context) {
//        super(context);
//    }
//
//    @Override
//    public void setDataList(Collection<Spec> list) {
//        super.setDataList(list);
//        modelNum = mDataList.size();
//        isSelects = new boolean[modelNum];
//        for (int i = 0; i < isSelects.length; i++) {
//            isSelects[i] = false;
//        }
//    }
//
//    @Override
//    public int getLayoutId() {
//        return R.layout.pro_item_spec;
//    }
//
//    @Override
//    public void onBindItemHolder(SuperViewHolder holder, final int pos) {
//        TextView tv_name = holder.getView(R.id.tv_name);
//        final TagFlowLayout mFlowLayout = holder.getView(R.id.id_flowlayout);
//
//        final Spec spec = mDataList.get(pos);
//        tv_name.setText(spec.getGoodsFeatureName());
//
//        final List<Spec.SpecDetail> valList = spec.getGoodsFeatureVals();
//        final ModelAdapter modelAdapter = new ModelAdapter(valList);
//        mFlowLayout.setAdapter(modelAdapter);
//
//        mFlowLayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() {
//            @Override
//            public void onSelected(Set<Integer> selectPosSet) {
//                if (selectPosSet.size() > 0) {
//                    int selectPos = (int) selectPosSet.toArray()[0];//当前点击的位置(因为只能选中一个,所以当前选中的就是唯一选中的)
//                    if (pos > 0 && !isSelects[pos - 1]) {//当前点击规格的上一级还没有选择
//                        ToastUtils.showShort("请先选择" + mDataList.get(pos - 1).getGoodsFeatureName());
//                        isSelects[pos] = false;
//                        for (int a = 0; a < valList.size(); a++) {
//                            valList.get(a).setSelected(false);
//                        }
//
//                        mFlowLayout.onChanged();
//                    } else {
//                        isSelects[pos] = true;
//                        for (int a = 0; a < valList.size(); a++) {
//                            if (a == selectPos) {
//                                valList.get(a).setSelected(true);
//                            } else {
//                                valList.get(a).setSelected(false);
//                            }
//                        }
//
//                        modelAdapter.setSelectedList(selectPosSet);
//                    }
//                    mDataList.get(pos).setSelected(true);
//
//                    //根据选中的规格显示或者隐藏剩下的可选的规格
//                    int maxAvailable = findMaxAvailable();
//                    Logg.i("maxAvailable = " + maxAvailable);
//                    StringBuffer selectedSpecAndVal = new StringBuffer("");//specId1:valId1,specId2:valId2,
//                    if (maxAvailable != -1) {//说明有选中的
//                        for (int x = 0; x <= maxAvailable; x++) {
//                            String selectedSpecId = mDataList.get(x).getId();//选中的规格id
//                            List<Spec.SpecDetail> tmpValList = mDataList.get(x).getGoodsFeatureVals();
//                            for (int y = 0; y < tmpValList.size(); y++) {
//                                if (tmpValList.get(y).isSelected()) {
//                                    String selectedValId = tmpValList.get(y).getId();//选中的值的id
//                                    Logg.i("过程 = " + selectedSpecId + ":" + selectedValId + ",");
//                                    selectedSpecAndVal.append(selectedSpecId + ":" + selectedValId + ",");
//                                }
//                            }
//                        }
//                    }
////                    String selectedSpecAndValStr = selectedSpecAndVal.toString().substring(0, selectedSpecAndVal.toString().lastIndexOf(","));
//                    Logg.i("已经选中的 = " + selectedSpecAndVal.toString());
//
//                    if (maxAvailable >= isSelects.length - 1) {//说明都选择完毕了
//
//                    } else {
//                        for (int i = maxAvailable + 1; i < isSelects.length; i++) {
//                            String specId = mDataList.get(i).getId();
//                            String valId = valList.get(selectPos).getId();
//
//                            boolean isOk = false;
//                            for (int s = 0; s < skuList.size(); s++) {
//                                String skuInfo = skuList.get(s).getSkuInfo();
//                            }
//                        }
//                    }
//
//                } else {
//                    isSelects[pos] = false;
//                    mDataList.get(pos).setSelected(false);
//                    mFlowLayout.onChanged();
//                }
//            }
//        });
//        mFlowLayout.setOnTagClickListener(new TagFlowLayout.OnTagClickListener() {
//            @Override
//            public boolean onTagClick(View view, int valuePos, FlowLayout parent) {
//                return true;
//            }
//        });
//    }
//
//    //找到最小的已选择的位置(最上方的位置)
//    private int findMaxAvailable() {
//        for (int i = isSelects.length - 1; i >= 0; i--) {
//            if (isSelects[i]) {
//                return i;
//            }
//        }
//        return -1;
//    }
//
//    //规格值的标签的adapter
//    private class ModelAdapter extends TagAdapter<Spec.SpecDetail> {
//        public ModelAdapter(List<Spec.SpecDetail> datas) {
//            super(datas);
//        }
//
//        @Override
//        public View getView(FlowLayout parent, int position, Spec.SpecDetail specDetail) {
//            View v = LayoutInflater.from(mContext).inflate(R.layout.pro_item_spec_tag, null, false);
//            TextView tv = v.findViewById(R.id.tv_tag_name);
//            tv.setText(specDetail.getGoodsFeatureName());
//
//            return v;
//        }
//    }
//}
